#include <boost/any.hpp>
#include <iostream>
#include <vector>
#include <string>

int main()
{
	std::vector<boost::any> some_values;
	some_values.push_back(10);
	const char* c_str = "Hello there!";
	some_values.push_back(c_str);
	some_values.push_back(std::string("Wow"));
	std::string& s =
		boost::any_cast<std::string&>(some_values.back());
	s += " That is great!\n";
	std::cout << s;
	some_values.pop_back();
	const char* aaa =
		boost::any_cast<const char*>(some_values.back());
	std::cout << std::string(aaa) << std::endl;
	some_values.pop_back();
	int bbb =
		boost::any_cast<int>(some_values.back());
	std::cout << bbb << std::endl;
	some_values.pop_back();
	return 0;
}